﻿#ifndef XQDATABASEDATA_H
#define XQDATABASEDATA_H
//#include<QVariantMap>
//#include<QStringList>
#include<QVariantList>
#include<QJsonObject>
#include<QJsonDocument>
//数据库数据
class XQDatabaseData
{
public:
	XQDatabaseData() = default;

public://fields 字段列表为空默认行为是全部字段
	//默认字段名
	virtual QStringList fields()const=0;
	//转VariantMap 输出
	virtual QVariantMap toVariantMap(bool base64 = false,const QStringList& fields= QStringList())const = 0;
	//转QVariantList输出数据
	virtual QVariantList toVariantList(bool base64 = false, const QStringList& fields = QStringList())const;
	//数据转QStringList
	virtual QStringList toStringList(const QStringList& fields = QStringList())const;
	//转json文本 
	QByteArray toJson(const QStringList& fields = QStringList())const;
	//QVariantMap 数据构造
	virtual void setDatas(const QVariantMap& datas, bool base64 = false)=0;
	//QStringList数据构造
	virtual void setDatas(const QStringList& datas,const QStringList& fields = QStringList());
	//QVariantList数据构造
	virtual void setDatas(const QVariantList& datas, bool base64 = false, const QStringList& fields = QStringList());
	//设置json文本
	void setJson(const QByteArray& json);
public:
	//创建表的sql语句
	virtual QString createTableSql(const QString& tableName)=0;
};

#endif // !XQDatabaseData_H
